package __Goquery

import "github.com/PuerkitoBio/goquery"

// id # ---- class .
func main() {
	dom, _ := goquery.NewDocument("")
	dom.Find("p")
	dom.Find("#title")           //id
	dom.Find(".content")         //class
	dom.Find("div.content")      //指定某一个标签,中间没有空格
	dom.Find("p[class=content]") //元素的属性和属性值筛选数据
	dom.Find("p#title")          //如果多个标签的ID都是title，我们可以指定某一个标签
	dom.Find("div[my]")          //筛选含有my属性的div元素
	dom.Find("div[my=zh]")       //筛选my属性为zh的div元素
	dom.Find("div>p")            // 筛选div标签下的p标签
	dom.Find("p[my=a]+p")        //筛选出p标签属性my的值为a的相邻p标签
	dom.Find("p[my=a]~p")        //筛选出p标签属性my的值为a的兄弟p标签
}

/*常用方法
类似函数的位置操作
Find(selection) *Selection //根据选择器查找节点集
Eq(index int) *Selection //根据索引获取某个节点集
First() *Selection //获取第一个子节点集
Last() *Selection //获取最后一个子节点集
Next() *Selection //获取下一个兄弟节点集
NextAll() *Selection //获取后面所有兄弟节点集
Prev() *Selection //前一个兄弟节点集
Get(index int) *html.Node //根据索引获取一个节点
Index() int //返回选择对象中第一个元素的位置
Slice(start, end int) *Selection //根据起始位置获取子节点集

循环遍历选择的节点
Each(f func(int, *Selection)) *Selection //遍历
EachWithBreak(f func(int, *Selection) bool) *Selection //可中断遍历
Map(f func(int, *Selection) string) (result []string) //返回字符串数组

检测或获取节点属性值
Attr(), RemoveAttr(), SetAttr() //获取，移除，设置属性的值
AddClass(), HasClass(), RemoveClass(), ToggleClass()
Html() //获取该节点的html
Length() //返回该Selection的元素个数
Text() //获取该节点的文本值

在文档树之间来回跳转（常用的查找节点方法）
Children() //返回selection中各个节点下的孩子节点
Contents() //获取当前节点下的所有节点
Find() //查找获取当前匹配的元素
Next() //下一个元素
Prev() //上一个元素*/
